﻿using System.Collections.Generic;
using WpfDryIocDemo.Models;
using WpfDryIocDemo.Repositories;

namespace WpfDryIocDemo.Services
{
    // 业务服务类：封装业务逻辑，依赖通过构造函数注入
    public class UserService
    {
        private readonly IUserRepository _userRepository;

        // DryIOC 会自动注入 IUserRepository 的实现类
        public UserService(IUserRepository userRepository)
        {
            _userRepository = userRepository;
        }

        // 封装 CRUD 方法（可添加业务逻辑，如参数验证）
        public List<User> GetAllUsers() => _userRepository.GetAll();

        public User GetUserById(int id) => _userRepository.GetById(id);

        public bool AddUser(User user)
        {
            if (string.IsNullOrWhiteSpace(user.Name) || user.Age < 0)
                return false; // 业务验证：姓名不能为空，年龄不能为负

            _userRepository.Add(user);
            return true;
        }

        public bool UpdateUser(User user)
        {
            if (string.IsNullOrWhiteSpace(user.Name) || user.Age < 0)
                return false;

            return _userRepository.Update(user);
        }

        public bool DeleteUser(int id) => _userRepository.Delete(id);
    }
}
